package second.demo3;

import java.lang.reflect.Method;

/**
 * @Description:
 * @author:LiWei
 * @date:2022年10月27日12:34
 */
public class Test {
    public static void main(String[] args) throws Exception{
        Class<?> aClass=Class.forName("second.demo3.Dog");

//        Method fun=aClass.getDeclaredMethod("fun");
//        System.out.println(fun);
//
//        Method fun1=aClass.getDeclaredMethod("fun1",String.class,Integer.class);
//        System.out.println(fun1);
//
//        Method[] methods=aClass.getDeclaredMethods();
//        for (Method method : methods) {
//            System.out.println(method);
//        }
//
//        Method fun2=aClass.getMethod("fun");
//        System.out.println(fun2);

        Method f1=aClass.getDeclaredMethod("fun");
        Object o = aClass.newInstance();
        Object result=f1.invoke(o);
        System.out.println(result);

        Method f2 = aClass.getDeclaredMethod("fun1", String.class, Integer.class);
        Object object=f2.invoke(o,"aaaa",22);
        System.out.println(object);
    }
}

class Animal{
    public void show(){
        System.out.println("动物共有的show方法");
    }
    private void print(){
        System.out.println("动物私有的print方法");

    }
}

class Dog extends Animal {
    public void fun(){
        System.out.println("fun方法");
    }
    public void fun1(String name,Integer age){
        System.out.println("fun1方法"+name);
    }
}
